﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using IUAP.DAL.Intranet;
using IUAP.DAL;

/// <summary>
/// Descripción breve de Docente
/// </summary>
namespace IUAP.BLL.Intranet
{
    public class Docente:BaseIntranet
    {
        public Docente()
        {

        }

        public Docente(string _id_docente
            , string _nomb_docente)
        {
            this.Id_docente = _id_docente;
            this.Nomb_docente = _nomb_docente;
        }

        string id_docente = "";

        public string Id_docente
        {
            get { return id_docente; }
            set { id_docente = value; }
        }
        string nomb_docente = "";

        public string Nomb_docente
        {
            get { return nomb_docente; }
            set { nomb_docente = value; }
        }
        public static Docente GetDocentes(string id_docente)
        {
            Docente docente = null;
            string key = "Intranet_Docente_" + id_docente;

            if (BaseIntranet.Settings.EnableCaching && BizObject.Cache[key] != null)
            {
                docente = (Docente)BizObject.Cache[key];
            }
            else
            {
                docente = GetDocenteFromDocenteDetalles(SiteProvider.Intranet.GetDocentes(id_docente));
                BaseIntranet.CacheData(key, docente);
            }
            return docente;
        }
        public static List<Docente> GetDocentesbyApellido(string apapaterno)
        {
            List<Docente> docente = null;
            string key = "Intranet_Facultades";

            if (BaseIntranet.Settings.EnableCaching && BizObject.Cache[key] != null)
            {
                docente = (List<Docente>)BizObject.Cache[key];
            }
            else
            {
                List<DocenteDetalles> recordset = SiteProvider.Intranet.GetDocentesbyApellido(apapaterno);
                docente = GetDocenteListFromDocenteDetallesList(recordset);
                BaseIntranet.CacheData(key, docente);
            }
            return docente;
        }
        private static List<Docente> GetDocenteListFromDocenteDetallesList(List<DocenteDetalles> recordset)
        {
            List<Docente> docente = new List<Docente>();
            foreach (DocenteDetalles record in recordset)
            {
                docente.Add(GetDocenteFromDocenteDetalles(record));
            }
            return docente;
        }
        private static Docente GetDocenteFromDocenteDetalles(DocenteDetalles record)
        {
            if (record == null)
                return null;
            else
            {
                return new Docente(record.Id_docente, record.Nomb_docente);
            }
        }
    }
}